<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组</title>
</head>
<body>
    /*
      数组的定义和遍历：
       var arr1 = nwe Array();
       arr1[0] = 'a';
       arr1[1] = 'b';
       arr1[2] = 'c';
       arr1[3] = 1;
       arr1[4] = true;
       尽量类型保持一致
       .......

     for(var i=0;i<arr1.length;i++){
         console.log(arr1[i]);
     }


       var arr2 = new Array(1,2,3,4,5,6,7);
        for(var i=0;i<arr2.length;i++){
           console.log(arr2[i]);
      }



      var arr3 = [1,2,3,4,5,'hello'];
      for(var i=0;i<arr3.length;i++){
        console.log(arr3[i]);
   }


      1.indexOf('要搜索数组中的元素','从第几个位置开始找');  不会修改原数组  找不到返回值是-1
      2.lastIndexOf('要搜索数组中的元素','从第几个位置开始找'); 从后往前找
      3.concat([1,2,3],[4,5,6]);拼接数组 不会修改原数组
      4.slice(1,3); 截取 [,)
      5.join(',');把数组变幻成一个字符串，括号里填上为分隔符符号。原数组不会改变
      6.pop(); 删除末尾并返回 对原数组有影响
      7.shift(); 删除第一个并返回 对原数组有影响
      8.push('vant'); 在末尾添加一个人或多个新元素  返回新数组的长度 length 对原数组有影响
      9.unshift('vant');在前面添加一个人或多个新元素  返回新数组的长度 length 对原数组有影响
      10.splice(从第几个位置开始删除,删除几个,'在删除的位置添加元素'); 可删除可追加  返回数组删除的值   对原数组有影响
      11.sort((a,b=>{
          return a-b;    //从小到大排列
      })); 排序  返回一个数组  对原数组有改变 
      12.reverse(); 翻转数组顺序 对原数组改变





      es6里的
      数组名.forEach(function(item,index){
          //item 每一个元素循环一次  index 下标 从0开始
          if(item.age==16){
              //手动抛出异常 
              throw new Error('出现异常了');
          }
      })
      try{
          //放入正确的代码块
      }catch(error){
          if(error.masage==='出现异常了'){
              console.log('这个异常是结束forEach循环')
          }
      }




      过滤
     var newshu = 数组名.filter((item,index)=>{
        //下标不用可以删除   folter有返回值 是一个数组
        return item.age=>18 && item.gender =='女';
      }
        console.log(newshu);



     var a = 数组名.some((item)=>{
          reture item.age==19;
           //返回值的布尔类型 只要满足true就停止
        })
      console.log(a);


      var b = 数组名.every((item)=>{
        reture item.age==19;
        //返回值的布尔类型 true就一直循环 遇到false就停止
      }
      console.log(b);


      var newshu1 = 数组名.map((item)=>{
          //返回一个新数组  改变后的值组成新数组
          reture item.age+=1;   
      })
      console.log(newshu1);
    */
</body>
</html>